package com.rede.didiok.community.entity;

import java.util.Date;
import java.util.List;
import java.util.Map;

import lombok.Data;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.rede.didiok.common.dto.user.UserDto;
import com.rede.didiok.common.entity.SuperEntity;

/**
 * 用户动态评价表
 * 
 * @author Rede
 * @email didiok@foxmail.com
 * @date 2023-09-13 08:18:34
 */
@Data
@TableName("c_moment_comment")
public class MomentCommentEntity extends SuperEntity<MomentCommentEntity> {
	private static final long serialVersionUID = 1L;

	/**
	 * 创建人uid
	 */
	private String createUserUid;
	/**
	 * 创建人名称
	 */
	private String createUserName;
	/**
	 * 回复某条评论的uid
	 */
	private String toUid;
	/**
	 * 回复某个人的uid
	 */
	private String toUserUid;
	/**
	 * 评论内容
	 */
	private String content;
	/**
	 * 榜单成员uid
	 */
	private String momentUid;
	/**
	 * 榜单成员名称
	 */
	private String momentName;

	/**
	 * 评论来源： MESSAGE_BOARD，ABOUT，BLOG_INFO 等
	 */
	private String source;
	/**
	 * 评论类型 1:点赞 0:评论
	 */
	private Integer type;
	/**
	 * 一级评论UID
	 */
	private String firstCommentUid;
	/**
	 * 审批状态【0：待审批，1：审核未通过，2：审核通过】
	 */
	private Integer auditStatus;
	/**
	 * 审批人
	 */
	private String auditName;
	/**
	 * 审批拒绝原因
	 */
	private String rejectReason;
	/**
	 * 审批时间
	 */
	private Date auditTime;

	// 以下字段不存在于数据库中


	/**
	 * 本条评论是哪个用户说的
	 */
	@TableField(exist = false)
	private UserDto user;

	/**
	 * 发表评论的用户名
	 */
	@TableField(exist = false)
	private String userName;

	/**
	 * 被回复的用户名
	 */
	@TableField(exist = false)
	private String toUserName;


	/**
	 * 本条评论对哪个用户说的，如果没有则为一级评论
	 */
	@TableField(exist = false)
	private UserDto toUser;

	/**
	 * 本条评论下的回复
	 */
	@TableField(exist = false)
	private List<MomentCommentEntity> replyList;

	/**
	 * 本条评论回复的那条评论
	 */
	@TableField(exist = false)
	private MomentCommentEntity toComment;

	/**
	 * 评论来源名称
	 */
	@TableField(exist = false)
	private String sourceName;

	/**
	 * 该评论来源的博客
	 */
	@TableField(exist = false)
	private UserMomentEntity userMoment;

	/**
	 * 点赞相关信息
	 */
	@TableField(exist = false)
	private Map<String, Object> praiseInfo;

	/**
	 * 收藏相关信息
	 */
	@TableField(exist = false)
	private Map<String, Object> collectInfo;
}
